001 /**
002 * Created by IntelliJ IDEA.
003 * User: Wei Wang
004 * Date: Mar 11, 2003
005 * Time: 9:15:14 PM
006 */
007
008 package EVolve.util.painters;
009
010 import EVolve.visualization.AutoImage;
011 import java.awt.*;
012 import java.util.*;
013
014 public class AllocDensityMetricPainter extends Painter{
015 private long totalAlloc;
016 private long lastX;
017 private float max;
018 private HashMap values;
019
020 public AllocDensityMetricPainter() {
021 totalAlloc = 0;
022 lastX = 0;
023 max = 0;
024 values = new HashMap();
025 }
026
027 public String getName() {
028 return "Metric Painter";
029 }
030
031 public void paint(AutoImage image, long x, long y, long z) {
032 long bytecode = z;
033 if (lastX != x) {
034 for (long i = lastX; i<x; i++)
035 values.put(new Long(i),new Float((float)(1000*totalAlloc)/(float)bytecode));
036 image.setColor((int)x,(int)(1000*totalAlloc/bytecode),Color.red);
037 lastX = x;
038 }
039 totalAlloc = y;
040 if (max < (float)(totalAlloc*1000)/(float)bytecode) {
041 max = (float)(totalAlloc*1000)/(float)bytecode;
042 }
043 }
044
045 public float getMax() {
046 return max;
047 }
048
049 public float getValue(int x) {
050 if (!values.containsKey(new Integer(x)))
051 return -1;
052 return ((Float)values.get(new Integer(x))).floatValue();
053 }
054 }